
void getvoltages P(( int, double ));
void getmultichvoltages P(( int, double ));
int outputvoltage P((double));
void getvoltage_trig P(( int, double, double ));
int outputwaveform P(( double*, long, double, double ));
int cleartask P((int));

:Begin:
:Function:       serialportcommunicatecpp
:Pattern:        SerialPortCommunicateCpp[L_List]
:Arguments:      {L }
:ArgumentTypes:  {Manual}
:ReturnType:     Manual
:End:
:Evaluate: SerialPortCommunicateCpp::usage = "Send to serial port"

:Begin:
:Function:       runtask
:Pattern:        RunTask[task__]
:Arguments:      { task }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: RunTask::usage = "RunTask(taskHandle) is the one C function that bypassed the package for efficiency reassons use with option setup only"


:Begin:
:Function:       getvoltagescpp
:Pattern:        GetVoltagesCpp[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: GetVoltagesCpp::usage = "GetVoltagesCpp[L_List] has same functionality as getvoltages but uses new Job class"

:Begin:
:Function:       getvoltagessoftwaretrigcpp
:Pattern:        GetVoltagesSoftwareTrig[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: GetVoltagesSoftwareTrig::usage = "GetVoltageSoftwareTrig uses the options cpp class and job class returns \
 a list of two arrays the post-trig and pretrigger samples"
	
:Begin:
:Function:       getvoltagesdigitaltrigcpp
:Pattern:        GetVoltagesDigitalTrig[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: GetVoltagesDigitalTrig::usage = "GetVoltageDigitalTrig uses the options cpp class and job class returns \
 a list of on or two arrays"
	
									
:Begin:
:Function:       getvoltagessofttrigcpp
:Pattern:        GetVoltagesSoftTrig[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: GetVoltagesSoftTrig::usage = "GetVoltageSoftTrig uses the options cpp class and returns \
 a list of two arrays the post-trig and pretrigger samples"

:Begin:
:Function:       getvoltagescpp
:Pattern:        GetVoltagesCpp[channels_String,numchannels_Integer,frequency_Real,
					samples_Integer,terminalmode_Integer,min_Real,max_Real,units_Integer,
					clock_String,activeedge_Integer, samplemode_Integer, timeout_Real,
					 debug_Integer]
:Arguments:      {channels,numchannels,frequency,samples,terminalmode,min,max,
					units,clock,activeedge, samplemode,timeout,debug}
:ArgumentTypes:  {String,Integer,Real,Integer,Integer,Real,Real,Integer,String,
					Integer,Integer,Real,Integer}
:ReturnType:     Manual
:End:
:Evaluate:       GetVoltagesCpp::usage = "GetVoltagesCpp[channels_String,numchannels_Integer,frequency_Real,
					samples_Integer,terminalmode_Integer,min_Real,max_Real,units_Integer,
					clock_String,activeedge_Integer, samplemode_Integer, timeout_Real,
					 debug_Integer]returns samples not intended to be pulic function"



:Begin:
:Function:       cleartask
:Pattern:        ClearTask[task_Integer]
:Arguments:      { task }
:ArgumentTypes:  { Integer }
:ReturnType:     Integer
:End:

:Evaluate: cleartask::usage = "cleartask"

:Begin:
:Function:       outputwaveform
:Pattern:        OutputWaveform[data_List,freq_Real,numPeriods_Real]
:Arguments:      { data, freq ,numPeriods}
:ArgumentTypes:  { RealList, Real , Real}
:ReturnType:     Integer
:End:

:Evaluate: outputwaveform::usage = "OutputWaveform[data,frequency,numPeriods] Set numPeriods to -1.0 for continuous operation"

:Begin:
:Function:       outputwaveformcpp
:Pattern:        OutputWaveformCpp[L_List]
:Arguments:      { L }
:ArgumentTypes:  { Manual }
:ReturnType:     Manual
:End:

:Evaluate: outputwaveformccp::usage = "INternal function either continuous or finite number of periods"




:Begin:
:Function:       getvoltage_trig
:Pattern:        GetVoltageTrig[numSamples_Integer,sampleFreq_Real, triggerLevel_Real]
:Arguments:      { numSamples, sampleFreq, triggerLevel}
:ArgumentTypes:  { Integer, Real, Real }
:ReturnType:     Manual
:End:

:Evaluate: GetVoltageTrig::usage = "GetVoltageTrig[numsamples,samplefreq,triggerLevel] returns a list of samples from the DAQ"


:Begin:
:Function:       outputvoltage
:Pattern:        OutputVoltage[voltage_Real]
:Arguments:      { voltage }
:ArgumentTypes:  { Real }
:ReturnType:     Integer
:End:

:Evaluate: OutVoltage::usage = "OutputVoltages[voltage] causes DAQ to produce voltage on A0"

/*
* :Begin:
* :Function:       getvoltages
* :Pattern:        GetVoltages[numsamples_Integer,samplefreq_Real]
* :Arguments:      { numsamples, samplefreq }
* :ArgumentTypes:  { Integer, Real }
* :ReturnType:     Manual
* :End:

* :Evaluate: GetVoltages::usage = "GetVoltages[numsamples,samplefreq] returns a list of samples from the DAQ"
*/

/*
* :Begin:
* :Function:       getmultichvoltages
* :Pattern:        GetMultiChVoltages[numsamples_Integer,samplefreq_Real]
* :Arguments:      { numsamples, samplefreq }
* :ArgumentTypes:  { Integer, Real  }
* :ReturnType:     Manual
* :End:

* :Evaluate: GetMultiChVoltage::usage = "GetMultiChvoltages[numsamples,samplefreq] returns a list of samples from the DAQ"
*/